本篇擷取重點:
一、Request物件
Request 物件是 ASP 的內建物件之一,我們可以使用此物件來取得當用戶對伺服器進行要求(Request)時,對伺服器所送出的資訊,這些資訊包含用戶端的表單資訊、cookies資訊、認證資訊等,以及伺服器的環境變數等。事實上,這些資訊是經由 HTTP 的表頭(Headers)傳到伺服器端,經由伺服器解析後,存放於 Request 物件中。
參考資料:
http://mirlab.org/jang/books/asp/requestIntro.asp?title=14-1%20Request%20%AA%AB%A5%F3%C2%B2%A4%B6
二、Request物件的常用屬性及方法:
屬性 | 說明 |
---|---|
ClientCertificate | 用戶端的認證資訊 |
Cookies | 用戶端硬碟所儲存的 Cookie 資訊 |
Form | 以 post 為傳送方法的表單資訊 |
QueryString | 以 get 為傳送方法的表單資訊(URL參數) |
ServerVariables | 伺服器環境變數的值 |
Params | 是QueryString、ServerVariables、Form、cookies屬性的組合 |
UserHostAddress | 取得遠端客戶端IP位地 |
Path | 取得當下的請求虛擬路徑 |
==================================================================
貼心小補充:
其他取得當下請求路徑的Request物件常用屬性:
虛擬路徑:(網址URL,正斜線),例如: http: //localhost:1897/News/Press/Content. aspx/123
- 絕對路徑 http: //localhost:1897/News/Press/Content. aspx/123
- 相對路徑 (視其相對位置而定,下方舉例說明)
範例:
使用者所在瀏覽的網頁網址為,http: //localhost:1897/News/Press/Content. aspx/123
這層網頁開啟所需讀取的logo.png檔案所在位置為,http: //localhost:1897/News/Press/images/logo.png
相對路徑可以寫成 ../../images/logo.png
幾種常見的虛擬路徑的「相對路徑」寫法:
參考資料:
https://blog.miniasp.com/post/2008/02/10/How-Do-I-Get-Paths-and-URL-fragments-from-the-HttpRequest-object (大推薦,ASP.NET 如何取得 Request URL 的各個部分)
https://blog.miniasp.com/post/2008/10/19/URL-URI-Description-and-usage-tips (更多URL)
==================================================================
方法 | 說明 |
---|---|
BinaryRead() | 以二進位方式來讀取客戶端使用POST方法傳遞的資料並儲存在SafeArray中 |
MapPath() | 將string虛擬路徑(網址URL)轉為實際路徑(伺服器的儲存路)。 |
==================================================================
貼心小補充:
WINDOWS電腦儲存路徑:(檔案總管,反斜線),例如: C:\inetpub\wwwroot
- 絕對路徑 (C:\inetpub\wwwroot )
- 相對路徑 (視其相對位置而定,下方舉例說明)
範例:
目前所在位置:C:\OBPV2\OBPV2Portal\QA\Portal_Web_SSO\Tool
標的所在位置:C:\OBPV2\OBPV2Portal\QA\Portal_Web_SSO\LogFiles\SAPResult.txt
標的檔案,WINDOWS電腦儲存路徑之絕對路徑為:
C:\OBPV2\OBPV2Portal\QA\Portal_Web_SSO\LogFiles\SAPResult.txt
標的檔案,WINDOWS電腦儲存路徑之相對路徑為:
..\LogFiles\SAPResult.txt
幾種常見的WINDOWS電腦儲存路徑的「相對路徑」寫法:
參考資料:
https://sendohlun.pixnet.net/blog/post/459836524-%5Basp.net%5D-server.mappath
==================================================================
明日(9/20)預定探討課題:
路徑寫反了,應該是 "/","\" 是逸出字元。
/、./、../、../../../../ 都可以,還有一種 "~/",經由 VirtualPathUtility.ToAbsolute() 可翻成以根目錄為主的相對路徑。
感謝朱大,立即更正